/** Inquirer : 用户交互式命令工具
 
  inquirer
    .prompt([
      //  Pass your questions in here   问题集合 
    ])
    .then(answers => {     answers => 结果集
      // Use user feedback for... whatever!!  
    })
    .catch(error => {
      if(error.isTtyError) {
        // Prompt couldn't be rendered in the current environment
      } else {
        // Something else when wrong
      }
    });

*/
const checkPwd = (str) => {
  var Lv = 0;
  if (str.length < 6) {
      return Lv
  }
  if (/[0-9]/.test(str)) {
      Lv++
  }
  if (/[a-z]/.test(str)) {
      Lv++
  }
  if (/[A-Z]/.test(str)) {
      Lv++
  }
  if (/[\.|-|_]/.test(str)) {
      Lv++
  }
  return Lv;
}
/** 学生档案信息  */
const inquirer = require('inquirer')

inquirer.prompt([
    {
        type: 'input'    // 问题类型 ：输入框类型 input, number, confirm, list, rawlist, expand, checkbox, password, editor
        ,name:'name'     // 结果集Key
        ,message:'姓名'  // 问题信息
        // ,default:   默认值
        // ,choices:  选项
        // ,filter: 数据过滤
        ,validate(val){  // 校验函数
            if(val.trim() === ''){
                return '姓名不能为空'
            }
            return true
        }
    }
    ,{
      type:'number',
      name:"age",
      message:'年龄',
      validate(val){
        if(isNaN(val)){
          val = ''
          return '年龄必须是数字'
        }
        return true
      }
    },
    {
      type:'password',
      name:'pawd',
      message:'注册密码',
      validate(val){
        let lv = checkPwd(val)
        if(lv<2) return '密码强调过低，请加强密码难度'
        return true
      },
    },
    {
      type:'confirm',
      name:'at_school',
      message:'是否在校？'
    }
]).then(res => {
    console.log(res) // 结果集
})

